﻿using System;
using System.Linq;

namespace Ditto.Models {

    public interface IItemRepository {

        IQueryable<Item> FindAllItems();
        IQueryable<Item> FindByLocation(float latitude, float longitude);
        IQueryable<Item> FindUpcomingItems();
        IQueryable<Item> FindItemsByText(string q);

        Item GetItem(int id);

        void Add(Item item);
        void Delete(Item item);

        Request FindRequest(int itemID, string requestingUserID);
        IQueryable<Item> FindItemsRequested(string userID);
        IQueryable<Item> FindItemsRequesting(string userID);

        Transaction FindTransaction(int itemID);

        IQueryable<Request> FindRequestingUsers(int itemID);

        void Add(Request item);
        void Delete(Request item);
        
        void Save();
    }
}
